////https://ac.nowcoder.com/acm/problem/53675
//
//#include<iostream>
//
//using namespace std;
//typedef long long ll;
//template<class T>
//inline void read(T& res)
//{
//	char c; T flag = 1;
//	while ((c = getchar()) < '0' || c > '9')if (c == '-')flag = -1; res = c - '0';
//	while ((c = getchar()) >= '0' && c <= '9')res = res * 10 + c - '0'; res *= flag;
//}
//
//const int N = 3010, pos = 2333;
//int x[N][N], dp[N][N];
//
//int main()
//{
//	int n, m; cin >> n >> m;
//	for (int i = 1; i <= n; i++)
//		for (int j = 1; j <= m; j++)
//			read(x[i][j]);
//	dp[n][1] = 1;
//	for (int i = n; i >= 1; i--)
//	{
//		for (int j = 1; j <= m; j++)
//		{
//			if (x[i][j]) continue;
//			dp[i][j] += dp[i + 1][j] + dp[i][j - 1];
//			dp[i][j] %= pos;
//		}
//	}
//	cout << dp[1][m];
//	return 0;
//}